package Java.BlackHorse.Stream;

import java.util.ArrayList;
import java.util.Collections;

public class StreamDemo5 {
    /*
    stream流的中间方法

    filter 过滤
    limit  获取前几个元素
    skip 跳过前几个元素

    注意1：中间方法，返回新的Stream流，原来的Stream流只能使用一次，建议使用链式编程
    注意2：修改Stream流中的数据，不会影响原来集合或者数组中的数据

     */
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"张三","张无忌","张三丰","王麻子","王富贵","二狗","张飞","褪色者");

        System.out.println("----------filter----------");
        list.
                stream().
                filter(s -> s.length()==3).
                forEach(s-> System.out.println(s));

        System.out.println("====================");


        list.
                stream().
                filter(s -> s.startsWith("张")).
                forEach(s-> System.out.println(s));

        System.out.println("----------limit----------");
        list.
                stream().
                limit(3).//获取前三个元素
                forEach(s -> System.out.println(s));

        System.out.println("----------skip----------");
        list.
                stream().
                skip(3).//跳过前三个元素
                forEach(s -> System.out.println(s));

        System.out.println("====================");

        list.stream().limit(6).skip(3).forEach(s -> System.out.println(s));
        list.stream().skip(3).limit(3).forEach(s -> System.out.println(s));
    }
}
